package com.rc.evcharger.biz.job;


import com.rc.evcharger.common.constant.SocketConstant;
import com.rc.evcharger.common.utils.DataUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 定时请求正在充电的桩的充电数据
 *
 * @author kb
 */
@Component
public class CurrentDataJob {
    private static Logger logger = LogManager.getLogger(CurrentDataJob.class);

    //@Autowired
    //private CommandService commandService;
    //
    //@Autowired
    //private ElecPileService pileService;
    //
    //@Autowired
    //private RedisService redisService;

    /**
     * 获取保存在redis中的订单对应的桩信息然后判断是否离线，如果不离线就读取充电过程中的信息
     */

//    public void run() {
//        try {
//            // 正在充电的电桩会保存有订单数据在内存中
//            List<RedOrder> list = (List<RedOrder>) redisService.getObjects(new RedOrder());
//            // 获取所有充电中的桩地址和枪号
//            ElecPile pile = null;
//            for (RedOrder order : list) {
//                pile = pileService.getPileByLogicAddress(order.getRtua());
//                if (SocketConstant.OFF_LINE == pile.getStatus()) {//电桩离线了不发送，
//                    continue;
//                }
//                commandService.sendCurrDataCode(null, order.getRtua(), order.getGunNum(), getCodes(pile.getTenantCode()));
//            }
//        } catch (Exception e) {
//            logger.error(e.getMessage());
//        }
//    }



    private static String[] getCodes(String source) {
        List<String> codes = new ArrayList<>();
        if (SocketConstant.SOURCE_ZHUHAI.equalsIgnoreCase(source)) {
            codes.add(DataUtil.dataCodes[6][0].toString());
            codes.add(DataUtil.dataCodes[2][0].toString());
            codes.add(DataUtil.dataCodes[5][0].toString());
        } else {
            codes.add(DataUtil.dataCodes[19][0].toString());
            codes.add(DataUtil.dataCodes[7][0].toString());
            codes.add(DataUtil.dataCodes[8][0].toString());
        }
        codes.add(DataUtil.dataCodes[3][0].toString());
        codes.add(DataUtil.dataCodes[12][0].toString());
        codes.add(DataUtil.dataCodes[13][0].toString());
        return codes.toArray(new String[codes.size()]);
    }


}
